from tkinter import *

master=Tk()
master.geometry("700x600")
# =============================================  Layber 标签组件
l_show=Label(master,text="三酷猫:") #创建带标题的 Label 实例
l_show.pack(side="left") #带标题标签在窗体左对齐设置（1）

# =============================================  Entry 单行文本组件
e_show=Entry(master,width=10) #创建10个字符宽的单文本输入框
e_show.pack(side="left") #单文本框在窗体左对齐设置（3）

# =============================================  Text 单行文本组件
t_show=Text(master,width=10,height=4) #创建多行输入框
t_show.pack(side="bottom") #多行文本框在窗体底对齐设置（4）

# =============================================  Checkbutton 复选框组件
var=StringVar() #字符串变量子类，创建对应的实例1
c_show=Checkbutton(master,text="酷猫",variable=var,
                   onvalue="RGB",offvalue="L",fg="blue") #创建带蓝色标题的复选框
c_show.pack(side="top") #复选框在窗体顶端对齐设置

# =============================================  Radiobutton 单选组件
v=IntVar() #整型变量子类，创建对应的实例2
r_show=Radiobutton(master,text="One",variable=v,value=1) #创建单选框
r_show.pack(anchor=W) #单选框定位于窗体西边

# =============================================  Frame 框架组件
f_show=Frame(master,height=200,width=200,bd=1,bg='white',relief=SUNKEN) #创建框架
f_show.pack(anchor="center") #定位于窗体中间位置（7）

# =============================================  LabelFrame 标签框架组件
lf_show=LabelFrame(master,text="Group",padx=5,pady=5) #创建标签框架
lf_show.pack(padx=10,pady=10,expand='yes') #相对于（7）位置设置（8）位置
e1=Entry(lf_show,width=10) #在标签框架容器里增加文本输入框1
e1.pack() #在标签框架里顶对齐文本输入框1
e2=Entry(lf_show,width=10) #在标签框架容器里增加文本输入框2
e2.pack() #在标签框架里顶对齐文本输入框2

# =============================================  ListBox 列表框组件
lb_show=Listbox(master,bg="yellow",height=5,width=20) #创建黄色列表框实例
lb_show.pack(side="top") #相对于（8）进行顶对齐列表框（9）
for item in ["one","tow","three","four"]:
    lb_show.insert(END,item) #循环插入4个值到列表框中

# =============================================  Scrollbar 滚动条组件
s_show=Scrollbar(master) #创建滚动条实例
s_show.pack(side=RIGHT,fill=Y) #设置滚动条为右边且竖向滚动
lb_show1=Listbox(master,fg='red',height=5,width=20) #创建需要滚动条的列表框
lb_show1['yscrollcommand']=s_show.set #把滚动条对象赋给对象列表框属性
lb_show1.pack(side="right") #把滚动条的列表框定位（9）的右边（10）
for item in ["1","2","3","4","5","6","7"]:
    lb_show1.insert(END,item)
s_show.config(command=lb_show1.yview) #滚动条与列表框绑定连动命令属性

# =============================================  Scale 刻度条组件
sc_show=Scale(master,from_=0,to=100) #创建长度为100的刻度条
sc_show.pack(side="right") #在（10）左边显示刻度条（11）

# =============================================  Message及Button 组件
def showMessage(event): #自定义按钮鼠标事件回调函数
    m1=Message(master,text="非常好！",width=60) #调用 Message 组件显示信息
    m1.pack() #在窗体以默认方式设置 Message 信息（12）
b_show=Button(master,text="确认",fg="black") #创建按钮实例
b_show.bind("<Button-1>",showMessage) #按钮对象绑定鼠标回调事件
b_show.pack(side="left") #在窗体左对齐设置按钮（13）

# =============================================  Spinbox 组件
sb_show=Spinbox(master,from_=0,to=10) #创建取值范围在0-10的输入框
sb_show.pack(side="left") #在窗体左对齐设置（14）

# =============================================  Toplevel 子窗体组件
tL_show=Toplevel(master) #创建子窗体实例
tL_show.wm_attributes("-topmost",1) #设置该子窗体始终在界面最前面（15）
tL_show.title("OK!") #设置子窗体标题为OK!
t1_show=Text(tL_show,width=10,height=4) #在该窗体增加输入文本框1
t2_show=Text(tL_show,width=10,height=4) #在该窗体增加输入文本框2
t1_show.pack() #在子窗体设置文本输入框1位置
t2_show.pack() #在子窗体设置文本输入框2位置

# =============================================  PanedWindow 组件
pw=PanedWindow(orient=VERTICAL,bg="green") #创建带绿色背景的 PanedWindow 实例
pw.pack(fill=BOTH,expand=1) #在窗体上设置该组件（16）
for w in [Label,Button,Checkbutton,Radiobutton]: #循环生成4个组件
    pw.add(w(pw,text="可上下移动"))  #添加到 PanedWindow 组件里，执行后该组件里的4个组件可以上下移动

mainloop() #启动窗体信息循环功能